#include "head.h"

char HostName[255];
int  PortNumber;

int main(int argc, char ** argv)
{
	int sockfd;
	char buffer[1024];
	struct sockaddr_in	server_addr;
	struct hostent *host;
	int portnumber, nbytes;

	if(argc != 3)
	{
		fprintf(stderr, "Usage:%s hostname portnumber\a\n", argv[0]);
		exit(1);
	}

	if((host=gethostbyname(argv[1])) == NULL)
	{
		fprintf(stderr, "Gethostname error\n");
		exit(1);
	}

	if((portnumber=atoi(argv[2])) < 0)
	{	
		fprintf(stderr, "Usage:%s hostname  portnumber\a\n", argv[0]);
		exit(1);
	}

	if((sockfd=socket(AF_INET, SOCK_STREAM, 0)) == -1)
	{
		fprintf(stderr, "Socket error:%s\n\a", strerror(errno));
		exit(1);
	}

	bzero(&server_addr, sizeof(server_addr));
	server_addr.sin_family = AF_INET;
	server_addr.sin_port = htons(portnumber);
	server_addr.sin_addr = *((struct in_addr *)host->h_addr);

	if(connect(sockfd, (struct sockaddr *)(&server_addr), sizeof(struct sockaddr)) == -1)
	{
		fprintf(stderr, "Connect error:%s\n\a", strerror(errno));
		exit(1);
	}
	
	if((nbytes=read(sockfd, buffer, 1024)) == -1)
	{
		fprintf(stderr, "Read error:%s\n\a", strerror(errno));
		exit(1);
	}
	
	buffer[nbytes] = '\0';
	printf("I have received:%s\n",buffer);

/*=====================================*/
	strcpy(buffer, "The client want to write some things.\n");
	lseek(sockfd, 0, SEEK_SET);
	write(sockfd, buffer, 1024);
/*=====================================*/
	close(sockfd);
	exit(0);
}
